{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 269,
   "id": "dd2db7f2",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd \n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "from sklearn.preprocessing import Normalizer\n",
    "from sklearn.cluster import KMeans\n",
    "from sklearn.metrics import silhouette_score\n",
    "plt.rcParams['font.sans-serif'] = ['Simhei']\n",
    "plt.rcParams['axes.unicode_minus']=False"
   ]
  },
  {
   "cell_type": "raw",
   "id": "d2ef5af5",
   "metadata": {},
   "source": [
    "导入数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 270,
   "id": "2e773161",
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.read_csv('D:/数据分析/第八阶段/模块二/Wholesale customers data.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 271,
   "id": "c32da0e3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Channel</th>\n",
       "      <th>Region</th>\n",
       "      <th>Fresh</th>\n",
       "      <th>Milk</th>\n",
       "      <th>Grocery</th>\n",
       "      <th>Frozen</th>\n",
       "      <th>Detergents_Paper</th>\n",
       "      <th>Delicassen</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>12669</td>\n",
       "      <td>9656</td>\n",
       "      <td>7561</td>\n",
       "      <td>214</td>\n",
       "      <td>2674</td>\n",
       "      <td>1338</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>7057</td>\n",
       "      <td>9810</td>\n",
       "      <td>9568</td>\n",
       "      <td>1762</td>\n",
       "      <td>3293</td>\n",
       "      <td>1776</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>6353</td>\n",
       "      <td>8808</td>\n",
       "      <td>7684</td>\n",
       "      <td>2405</td>\n",
       "      <td>3516</td>\n",
       "      <td>7844</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>13265</td>\n",
       "      <td>1196</td>\n",
       "      <td>4221</td>\n",
       "      <td>6404</td>\n",
       "      <td>507</td>\n",
       "      <td>1788</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>22615</td>\n",
       "      <td>5410</td>\n",
       "      <td>7198</td>\n",
       "      <td>3915</td>\n",
       "      <td>1777</td>\n",
       "      <td>5185</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Channel  Region  Fresh  Milk  Grocery  Frozen  Detergents_Paper  Delicassen\n",
       "0        2       3  12669  9656     7561     214              2674        1338\n",
       "1        2       3   7057  9810     9568    1762              3293        1776\n",
       "2        2       3   6353  8808     7684    2405              3516        7844\n",
       "3        1       3  13265  1196     4221    6404               507        1788\n",
       "4        2       3  22615  5410     7198    3915              1777        5185"
      ]
     },
     "execution_count": 271,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 272,
   "id": "4a5a50e8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 440 entries, 0 to 439\n",
      "Data columns (total 8 columns):\n",
      " #   Column            Non-Null Count  Dtype\n",
      "---  ------            --------------  -----\n",
      " 0   Channel           440 non-null    int64\n",
      " 1   Region            440 non-null    int64\n",
      " 2   Fresh             440 non-null    int64\n",
      " 3   Milk              440 non-null    int64\n",
      " 4   Grocery           440 non-null    int64\n",
      " 5   Frozen            440 non-null    int64\n",
      " 6   Detergents_Paper  440 non-null    int64\n",
      " 7   Delicassen        440 non-null    int64\n",
      "dtypes: int64(8)\n",
      "memory usage: 27.6 KB\n"
     ]
    }
   ],
   "source": [
    "#查看数据缺失值\n",
    "data.info()\n",
    "#此数据没有缺失值 数据完整性比较好"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 273,
   "id": "f57ffc0d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Channel</th>\n",
       "      <th>Region</th>\n",
       "      <th>Fresh</th>\n",
       "      <th>Milk</th>\n",
       "      <th>Grocery</th>\n",
       "      <th>Frozen</th>\n",
       "      <th>Detergents_Paper</th>\n",
       "      <th>Delicassen</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>440.000000</td>\n",
       "      <td>440.000000</td>\n",
       "      <td>440.000000</td>\n",
       "      <td>440.000000</td>\n",
       "      <td>440.000000</td>\n",
       "      <td>440.000000</td>\n",
       "      <td>440.000000</td>\n",
       "      <td>440.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>1.322727</td>\n",
       "      <td>2.543182</td>\n",
       "      <td>12000.297727</td>\n",
       "      <td>5796.265909</td>\n",
       "      <td>7951.277273</td>\n",
       "      <td>3071.931818</td>\n",
       "      <td>2881.493182</td>\n",
       "      <td>1524.870455</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>0.468052</td>\n",
       "      <td>0.774272</td>\n",
       "      <td>12647.328865</td>\n",
       "      <td>7380.377175</td>\n",
       "      <td>9503.162829</td>\n",
       "      <td>4854.673333</td>\n",
       "      <td>4767.854448</td>\n",
       "      <td>2820.105937</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>55.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>25.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>3.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>3127.750000</td>\n",
       "      <td>1533.000000</td>\n",
       "      <td>2153.000000</td>\n",
       "      <td>742.250000</td>\n",
       "      <td>256.750000</td>\n",
       "      <td>408.250000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>8504.000000</td>\n",
       "      <td>3627.000000</td>\n",
       "      <td>4755.500000</td>\n",
       "      <td>1526.000000</td>\n",
       "      <td>816.500000</td>\n",
       "      <td>965.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>2.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>16933.750000</td>\n",
       "      <td>7190.250000</td>\n",
       "      <td>10655.750000</td>\n",
       "      <td>3554.250000</td>\n",
       "      <td>3922.000000</td>\n",
       "      <td>1820.250000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>2.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>112151.000000</td>\n",
       "      <td>73498.000000</td>\n",
       "      <td>92780.000000</td>\n",
       "      <td>60869.000000</td>\n",
       "      <td>40827.000000</td>\n",
       "      <td>47943.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          Channel      Region          Fresh          Milk       Grocery  \\\n",
       "count  440.000000  440.000000     440.000000    440.000000    440.000000   \n",
       "mean     1.322727    2.543182   12000.297727   5796.265909   7951.277273   \n",
       "std      0.468052    0.774272   12647.328865   7380.377175   9503.162829   \n",
       "min      1.000000    1.000000       3.000000     55.000000      3.000000   \n",
       "25%      1.000000    2.000000    3127.750000   1533.000000   2153.000000   \n",
       "50%      1.000000    3.000000    8504.000000   3627.000000   4755.500000   \n",
       "75%      2.000000    3.000000   16933.750000   7190.250000  10655.750000   \n",
       "max      2.000000    3.000000  112151.000000  73498.000000  92780.000000   \n",
       "\n",
       "             Frozen  Detergents_Paper    Delicassen  \n",
       "count    440.000000        440.000000    440.000000  \n",
       "mean    3071.931818       2881.493182   1524.870455  \n",
       "std     4854.673333       4767.854448   2820.105937  \n",
       "min       25.000000          3.000000      3.000000  \n",
       "25%      742.250000        256.750000    408.250000  \n",
       "50%     1526.000000        816.500000    965.500000  \n",
       "75%     3554.250000       3922.000000   1820.250000  \n",
       "max    60869.000000      40827.000000  47943.000000  "
      ]
     },
     "execution_count": 273,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#查看数据的统计情况，总数，均值，标准差，最小值，四分位数，中位数，最大值\n",
    "data.describe()"
   ]
  },
  {
   "cell_type": "raw",
   "id": "267d6f23",
   "metadata": {},
   "source": [
    "数据预处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 274,
   "id": "60e0eb12",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 标准化处理\n",
    "transformer = Normalizer().fit(data.iloc[:,2:])\n",
    "data.iloc[:,2:] = transformer.transform(data.iloc[:,2:])\n",
    "data = data.iloc[:,2:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 275,
   "id": "afafec7f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Fresh</th>\n",
       "      <th>Milk</th>\n",
       "      <th>Grocery</th>\n",
       "      <th>Frozen</th>\n",
       "      <th>Detergents_Paper</th>\n",
       "      <th>Delicassen</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.708333</td>\n",
       "      <td>0.539874</td>\n",
       "      <td>0.422741</td>\n",
       "      <td>0.011965</td>\n",
       "      <td>0.149505</td>\n",
       "      <td>0.074809</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.442198</td>\n",
       "      <td>0.614704</td>\n",
       "      <td>0.599540</td>\n",
       "      <td>0.110409</td>\n",
       "      <td>0.206342</td>\n",
       "      <td>0.111286</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.396552</td>\n",
       "      <td>0.549792</td>\n",
       "      <td>0.479632</td>\n",
       "      <td>0.150119</td>\n",
       "      <td>0.219467</td>\n",
       "      <td>0.489619</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.856837</td>\n",
       "      <td>0.077254</td>\n",
       "      <td>0.272650</td>\n",
       "      <td>0.413659</td>\n",
       "      <td>0.032749</td>\n",
       "      <td>0.115494</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.895416</td>\n",
       "      <td>0.214203</td>\n",
       "      <td>0.284997</td>\n",
       "      <td>0.155010</td>\n",
       "      <td>0.070358</td>\n",
       "      <td>0.205294</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      Fresh      Milk   Grocery    Frozen  Detergents_Paper  Delicassen\n",
       "0  0.708333  0.539874  0.422741  0.011965          0.149505    0.074809\n",
       "1  0.442198  0.614704  0.599540  0.110409          0.206342    0.111286\n",
       "2  0.396552  0.549792  0.479632  0.150119          0.219467    0.489619\n",
       "3  0.856837  0.077254  0.272650  0.413659          0.032749    0.115494\n",
       "4  0.895416  0.214203  0.284997  0.155010          0.070358    0.205294"
      ]
     },
     "execution_count": 275,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "raw",
   "id": "558b8c55",
   "metadata": {},
   "source": [
    "适用轮廓系数找到最优K"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 276,
   "id": "2b86f060",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.lines.Line2D at 0x1ef8ca824f0>"
      ]
     },
     "execution_count": 276,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "score = []\n",
    "    \n",
    "for i in range(2,10):\n",
    "    cluster = KMeans(n_clusters=i,random_state=5).fit(data)\n",
    "    score.append(silhouette_score(data,cluster.labels_))\n",
    "\n",
    "plt.plot(range(2,10),score)\n",
    "# sns.lineplot(data=score)\n",
    "plt.axvline(pd.DataFrame(score).idxmax()[0]+2,ls=':')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6af12f1f",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 277,
   "id": "3deb5eb4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2"
      ]
     },
     "execution_count": 277,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#最优的值为  k=2\n",
    "pd.DataFrame(score).idxmax()[0]+2"
   ]
  },
  {
   "cell_type": "raw",
   "id": "534fa071",
   "metadata": {},
   "source": [
    "由于作业的k=3，此处设置k=3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 278,
   "id": "098737eb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Fresh</th>\n",
       "      <th>Milk</th>\n",
       "      <th>Grocery</th>\n",
       "      <th>Frozen</th>\n",
       "      <th>Detergents_Paper</th>\n",
       "      <th>Delicassen</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.575088</td>\n",
       "      <td>0.233245</td>\n",
       "      <td>0.279252</td>\n",
       "      <td>0.625425</td>\n",
       "      <td>0.053748</td>\n",
       "      <td>0.109052</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.902462</td>\n",
       "      <td>0.179160</td>\n",
       "      <td>0.229113</td>\n",
       "      <td>0.149695</td>\n",
       "      <td>0.049047</td>\n",
       "      <td>0.074455</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.254118</td>\n",
       "      <td>0.486061</td>\n",
       "      <td>0.684665</td>\n",
       "      <td>0.095721</td>\n",
       "      <td>0.271384</td>\n",
       "      <td>0.097196</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      Fresh      Milk   Grocery    Frozen  Detergents_Paper  Delicassen\n",
       "0  0.575088  0.233245  0.279252  0.625425          0.053748    0.109052\n",
       "1  0.902462  0.179160  0.229113  0.149695          0.049047    0.074455\n",
       "2  0.254118  0.486061  0.684665  0.095721          0.271384    0.097196"
      ]
     },
     "execution_count": 278,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model = KMeans(n_clusters=3,random_state=0).fit(data)\n",
    "\n",
    "result = pd.DataFrame(model.cluster_centers_)\n",
    "result.columns = data.columns\n",
    "\n",
    "result"
   ]
  },
  {
   "cell_type": "raw",
   "id": "23908863",
   "metadata": {},
   "source": [
    "数据可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 279,
   "id": "6aaa0c88",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "([<matplotlib.patches.Wedge at 0x1ef89bfd6d0>,\n",
       "  <matplotlib.patches.Wedge at 0x1ef87b0b070>,\n",
       "  <matplotlib.patches.Wedge at 0x1ef8c4006a0>],\n",
       " [Text(0.4972588178416405, 0.9811899245705362, '0'),\n",
       "  Text(-1.0999662608718677, 0.008615389925172691, '1'),\n",
       "  Text(0.48955871705091686, -0.985054446494944, '2')],\n",
       " [Text(0.2712320824590766, 0.5351945043112015, '35.1%'),\n",
       "  Text(-0.5999815968392005, 0.004699303595548741, '29.6%'),\n",
       "  Text(0.26703202748231825, -0.5373024253608785, '35.3%')])"
      ]
     },
     "execution_count": 279,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x576 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(12,8))\n",
    "plt.pie(x=result.T.sum(),autopct='%0.1f%%',labels=result.T.columns,textprops={'fontsize':25,'color':'black'})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 280,
   "id": "569af7b2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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EpD79evHrFmzKnFoSZIkCYB8mcw1uIqFJEmSVGBAliRJkgoMyJIkSVKBi6JLkiSVsHz5cubPn88HHzR6s0d1EF27dqVPnz506dKlrPYGZEmSpBLmz5/P5ptvTr9+/cjui6OOKKXEG2+8wfz589l+++3L2scpFpIkSSV88MEH9OjRw3DcwUUEPXr0WKvfBBiQJUmSGmE4Xj+s7dfRKRaSJEll6DfmgRbtb974I1u0P7UcR5AlSZLaobFjxzJw4EBqamqoqalhwoQJH6uvurq6lituPecIsiRJUjt18cUXc+qpp1a6jA2OI8iSJEkdRE1NDRdccAGHHXYYAO+99x7HH388+++/P1/5ylcAeP/99znqqKPYf//9GTFiBP/4xz8AePjhhznggAMYOnQor776asXOoSMwIEuSJLVTV1xxBTU1NZx77rkAzJw5k2HDhjF16lQAJk6cSFVVFY899hivvPIKc+bM4bnnnmOjjTbiscce46yzzmLp0qUAvPjiizz66KOcfPLJPPLIIxU7p47AKRaSJEntVMMpFlVVVYwYMWLV6xdeeIEZM2ZQV1fH4sWLWbBgAYcffjhVVVUceuih7LTTThx00EEAjBw5EoBevXqxbNmytj2RDsYRZEmSpA6ie/fuq73u378/559/PnV1dYwbN46+ffvyzDPPMHz4cH7961/z1ltvMW3aNAC6detWiZI7JEeQJUmSytAel2U788wzGTVqFJMmTWKLLbbgzjvvZOXKlVx44YVcccUVdO3alerq6lUhWeWJlFKbH7S6ujrNmjWrzY8rqWNp6TVHG2qP3+wktR9z585l4MCBlS5DLaTU1zMiZqeUqhu2dYqFJEmSVGBAliRJkgoMyJIkSVKBAVmSJEkqcBULSZKkcozdsoX7e7tl+1OLcQRZkiSpHaqtreULX/gCACeeeCK1tbUAnH/++Wu0rampWfV88uTJTJ48ufULXI8ZkCVJktqpOXPmAPDMM8+s2nb99ddXqJoNhwFZkiSpndp4441544036NKly6ptxdHipjz77LMcdNBBLFmypJWqW385B1mSJKmdGjJkCD/72c8YMmTIWu33yiuvcMoppzBlyhQ233zzVqpu/eUIsiRJUju12267MXnyZHbbbbe12m/ChAn06dOHl19+uZUqW78ZkCVJktqp3XbbjSeffHKtA/Kll17KD37wAy69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AVmSJKmdmjBhAlOnTuWyyy5jzpw5Jdt0tIAMcMMNNzBt2jT22msv7rjjjpYtrAWUNcVCkiRJldGjRw+OPPJI7rnnHi688ELefvttjj76aC666CJGjRrFb3/7W+69914GDRrEHXfcwWuvvUZtbe1q7ebNm8fFF1/MxhtvDMCkSZN47bXX+MIXvsAHH3xA//79OeCAAzj66KPX2Le2tpYddtiBhx9+mBUrVvCb3/yGc889d43jLlq0iBNOOIHly5czaNAgfvSjHzV7bm+99RZ9+/Zl4cKFnHzyyaSU2Hfffbniiiuora3lnXfe4bXXXmPXXXdlwoQJvPfee4wcOZJFixYxePBgbrzxRgBqamrYY489mDNnDlOnTv3Yn7kjyJIkSe1cjx49+O53v8sJJ5zAjBkzuPfee3njjTeYNGkStbW1XH/99atGYq+66qo12gHcd999nH322UyalN0QecaMGRx22GHcc889LF68mNGjRze679KlS5k2bRpDhw7lqaeeKnncadOmMXjwYKZPn87BBx/MypUrGz2f8847j/3224/33nuPk046iQULFjBu3DgeeOAB7rvvvlXtjj/+eB5//HFeeuklZs+ezcSJE6mqquKxxx7jlVdeWTWqPnPmTIYNG9Yi4RgMyJIkSe3em2++yYoVK7jpppuoqanh3XffZeHChSXbvvDCCyXbHXrooey9996r2u2www7853/+JyeccAJf//rXm9z39NNPB6BXr14sW7as5HGPOOIIVqxYwSGHHMKcOXPYaKPGY2b9FIubbrqJLl260LlzZ8aPH8/o0aNZsmTJqna77747ALvssgvz5s3jhRde4J577qGmpoa//OUvLFiQ3ey5qqqKESNGlPVZlsMpFpIkSWWo1LJsixcv5qGHHuKwww7jwgsv5MADD+T2229nq622AmDTTTflvffeAyClRP/+/Tn22GNXa7d8+XK6d+++Wr+//OUvufXWW9l1111XbSu1L0C3bt3WqKvhcZ944glOO+009t57b4YPH05tbS077rhjWed43XXXcdFFFzFkyBB22WWXVdt/97vf0b9/f55++mlOPPFE/va3v7HnnnsyatQo7r//fvr27Quwxrl9XI4gS5IktVPnnXcehx9+OFdffTWTJ0/me9/7HsOHD2fKlClsvfXWABx33HGMHz+evffemz//+c+MGTOmZLuGdt99d4477jg++9nPMnLkSBYsWFD2vqWOu+OOO/LNb36TYcOG0atXL7bbbruyz/Ooo47inHPO4ZhjjmGzzTZbNTJ8//33M3z4cAYMGMCQIUM488wzeeihh9h///354Q9/yLbbbrsWn2b5IqW2vyt0dXV1mjVrVpsfV1LH0m/MA63a/7zxR7Zq/5I6trlz5zJw4MBKl9Fqxo4dy+OPP06nTp3o3LkzV199NYMGtZ/7vtXW1jJ27Fj69evXIv2V+npGxOyUUnXDtk6xkCRJ2gCNHTu2Vft/9dVXOfHEE1fb1r9//7JWtwCYPHlyK1RVHgOyJEmSWlzv3r2pq6urdBnrxDnIkiRJUoEBWZIkSSpwioUkSVIZrj3hqBbt7xs/u79F+1PLcQRZkiSpHaqtrWXo0KFUV1dz8803N9m2pqZmtdevvvoq48ePb8Xq1m+OIEuSJLVTEyZMYODAgQwZMoS99tprtZtoNKV3796MGTOmlatbfzmCLEmS1I716NGDI488knvuuYcjjjiCffbZh6uuuqrJfebNm0dtbe2q13//+9856qijGDZsGKeffjorV65k4cKF1NTUcMABB3DxxRcDsGjRIg488ED23Xdfzj777Ea3vfbaa2vUUltby+WXX85+++3HPvvsw/vvv98Kn0bbMCBLkiS1cz169OC73/0uJ5xwAjNmzODee+/ljTfeKHv/K6+8klNOOYUnnniCQYMG8fLLL7NgwQLGjRvHAw88wH333QfAtGnTGDx4MNOnT+fggw9m5cqVJbddddVVJWtZunQp06ZNY+jQoTz11FOt8lm0BQOyJElSO/fmm2+yYsUKbrrpJmpqanj33XdZuHBh2fs///zz7LnnngBccMEF9OvXj86dOzN+/HhGjx7NkiVLADjiiCNYsWIFhxxyCHPmzGGjjTYque2FF14oWcvpp58OQK9evVi2bFkLfwptxznIkiRJ7djixYt56KGHOOyww7jwwgs58MADuf3229lqq63K7mPAgAE8+eST7Ljjjpx11ll88Ytf5Cc/+QkXXXQRQ4YMWTW3+YknnuC0005j7733Zvjw4dTW1jJv3rw1tvXv359jjz12jVq6devWKp9BWzMgS5IklaESy7Kdd955bLLJJlx99dXU1NRwxhlncMkll7D99tuvcRvnplx00UWcfvrp3HTTTey8884cfPDBvPnmm5xzzjn07NmTzTbbjAULFrDjjjsycuRIli9fTu/evdluu+3o1KnTGtvGjBmzzrV0BJFSavODVldXp1mzZrX5cSV1LP3GPNCq/c8bf2Sr9i+pY5s7dy4DBw6sdBlqIaW+nhExO6VU3bCtc5AlSZKkAgOyJElSIyrxm3a1vLX9OhqQJUmSSujatStvvPGGIbmDSynxxhtv0LVr17L38SI9SZKkEvr06cP8+fN5/fXXK12KPqauXbvSp0+fstsbkCVJkkro0qUL22+/faXLUAU4xUKSJEkqMCBLkiRJBQZkSZIkqcCALEmSJBUYkCVJkqQCA7IkSZJUYECWJEmSCgzIkiRJUoEBWZIkSSowIEuSJEkFBmRJkiSpoHOlC5AkSaq0wbcNbtX+/3D6H1q1f7UsR5AlSZKkAgOyJEmSVGBAliRJkgoMyJIkSVKBAVmSJEkqMCBLkiRJBQZkSZIkqcCALEmSJBUYkCVJkqQCA7IkSZJUYECWJEmSCgzIkiRJUoEBWZIkSSowIEuSJEkFBmRJkiSpwIAsSZIkFRiQJUmSpAIDsiRJklRgQJYkSZIKDMiSJElSgQFZkiRJKjAgS5IkSQWdK12A2o+5Awa2av8Dn5/bqv1LkiS1BEeQJUmSpAIDsiRJklRgQJYkSZIKDMiSJElSgQFZkiRJKjAgS5IkSQUGZEmSJKmgrIAcEbdExIyIuKSZdj+IiKNbpjRJkiSp7TUbkCNiBNAppbQPsE1E7NRIu/2A3iml+1q4RkmSJKnNlDOCXAPcnT9/BNi3YYOI6ALcDMyLiGNLdRIRZ0XErIiY9frrr69juZIkSVLrKicgdwMW5M/fAbYu0WYk8BxwDbBnRJzXsEFKaWJKqTqlVN2zZ891rVeSJElqVeUE5KXApvnz7o3ssyswMaX0KnA7cGDLlCdJkiS1rXIC8mw+mlYxBJhXos2LwA7582rg5Y9dmSRJklQBnctocy8wLSK2AY4AToyIcSml4ooWtwC3RsSJQBfg+BavVJIkSWoDzQbklNI7EVEDHAJck0+jeKZBmyXAF1qjQEmSJKktlTOCTErpLT5ayUKSJElab3knPUmSJKnAgCxJkiQVlDXFYn3Sb8wDrdr/vPFHtmr/kiRJal2OIEuSJEkFBmRJkiSpwIAsSZIkFRiQJUmSpAIDsiRJklRgQJYkSZIKDMiSJElSgQFZkiRJKjAgS5IkSQUGZEmSJKnAgCxJkiQVGJAlSZKkAgOyJEmSVGBAliRJkgoMyJIkSVKBAVmSJEkqMCBLkiRJBQZkSZIkqcCALEmSJBUYkCVJkqQCA7IkSZJUYECWJEmSCgzIkiRJUoEBWZIkSSowIEuSJEkFBmRJkiSpwIAsSZIkFRiQJUmSpAIDsiRJklRgQJYkSZIKDMiSJElSgQFZkiRJKjAgS5IkSQWdK12AJElSWcZu2Xp9b9+39fpWh+MIsiRJklRgQJYkSZIKDMiSJElSgQFZkiRJKjAgS5IkSQUGZEmSJKnAgCxJkiQVGJAlSZKkAgOyJEmSVGBAliRJkgoMyJIkSVKBAVmSJEkqMCBLkiRJBQZkSZIkqcCALEmSJBUYkCVJkqQCA7IkSZJUYECWJEmSCgzIkiRJUoEBWZIkSSowIEuSJEkFBmRJkiSpwIAsSZIkFRiQJUmSpAIDsiRJklRgQJYkSZIKDMiSJElSgQFZkiRJKjAgS5IkSQUGZEmSJKmgrIAcEbdExIyIuKSZdltHxFMtU5okSZLU9poNyBExAuiUUtoH2CYidmqi+feATVuqOEmSJKmtlTOCXAPcnT9/BNi3VKOIOAh4F3i1kffPiohZETHr9ddfX4dSJUmSpNZXTkDuBizIn78DbN2wQURsDHwbGNNYJymliSml6pRSdc+ePdelVkmSJKnVlROQl/LRtInujewzBrgxpbS4heqSJEmSKqKcgDybj6ZVDAHmlWhzMPCViKgDhkbEj1ukOkmSJKmNdS6jzb3AtIjYBjgCODEixqWUVq1okVLav/55RNSllEa3eKWSJElSG2g2IKeU3omIGuAQ4JqU0qvAM020r2mp4iRJkqS2Vs4IMimlt/hoJQtJkiRpveWd9CRJkqQCA7IkSZJUYECWJEmSCgzIkiRJUoEBWZIkSSowIEuSJEkFBmRJkiSpwIAsSZIkFRiQJUmSpAIDsiRJklRgQJYkSZIKDMiSJElSgQFZkiRJKjAgS5IkSQUGZEmSJKnAgCxJkiQVGJAlSZKkAgOyJEmSVGBAliRJkgoMyJIkSVKBAVmSJEkqMCBLkiRJBQZkSZIkqcCALEmSJBUYkCVJkqQCA7IkSZJUYECWJEmSCgzIkiRJUoEBWZIkSSowIEuSJEkFBmRJkiSpwIAsSZIkFRiQJUmSpAIDsiRJklRgQJYkSZIKDMiSJElSgQFZkiRJKjAgS5IkSQUGZEmSJKmgc6ULUPkG3za4Vfu/u1V7lyRJ6hgcQZYkSZIKDMiSJElSgVMsJEmSOrgbz3mk1fr+yg8ParW+2ytHkCVJkqQCA7IkSZJUYECWJEmSCgzIkiRJUoEBWZIkSSowIEuSJEkFLvMmSZJaRL8xD7Rq//O6tmr30iqOIEuSJEkFBmRJkiSpwIAsSZIkFRiQJUmSpAIDsiRJklRgQJYkSZIKDMiSJElSgesgt7SxW7Ze39v3bb2+JUmSBBiQJanVDL5tcKv1/YfT/9BqfUvShs4pFpIkSVKBAVmSJEkqMCBLkiRJBQZkSZIkqcCALEmSJBUYkCVJkqQCA7IkSZJUYECWJEmSCsoKyBFxS0TMiIhLGnl/y4h4KCIejoh7ImLjli1TkiRJahvNBuSIGAF0SintA2wTETuVaHYKcF1K6RDgVeDwli1TkiRJahvl3Gq6Brg7f/4IsC/wp2KDlNIPCi97AosadhIRZwFnAfTt23cdSpUkSZJaXzlTLLoBC/Ln7wBbN9YwIoYBn0wpzWz4XkppYkqpOqVU3bNnz3UqVpIkSWpt5YwgLwU2zZ93p5FQHRFbATcAx7VMaZIkSVLbK2cEeTbZtAqAIcC8hg3yi/LuBi5KKb3cYtVJkiRJbaycgHwvcFpEXAd8EXg2IsY1aHMGsDtwcUTURcQJLVumJEmS1DaanWKRUnonImqAQ4BrUkqvAs80aHMTcFNrFChJkiS1pXLmIJNSeouPVrKQJEmS1lveSU+SJEkqKGsEWZLWS2O3bN3+t3fNd0nqiBxBliRJkgoMyJIkSVKBAVmSJEkqMCBLkiRJBQZkSZIkqcCALEmSJBUYkCVJkqQCA7IkSZJUYECWJEmSCgzIkiRJUoEBWZIkSSroXOkCJElrb+6Aga3a/8Dn57Zq/5LUnjmCLEmSJBUYkCVJkqQCA7IkSZJUYECWJEmSCgzIkiRJUoEBWZIkSSowIEuSJEkFBmRJkiSpwIAsSZIkFRiQJUmSpAIDsiRJklRgQJYkSZIKDMiSJElSgQFZkiRJKuhc6QKklnDtCUe1av/f+Nn9rdq/JElqPxxBliRJkgoMyJIkSVKBAVmSJEkqMCBLkiRJBV6kJ0mS1MrmDhjYugeoubHVut4QL4R3BFmSJEkqMCBLkiRJBQZkSZIkqcCALEmSJBUYkCVJkqQCA7IkSZJUYECWJEmSClwHWZLU5lpzXdX2uKaqpI7FEWRJkiSpwIAsSZIkFRiQJUmSpAIDsiRJklRgQJYkSZIKDMiSJElSgQFZkiRJKnAdZLWZG895pNIlSJIkNcsRZEmSJKnAEWRJ0hr8jY+kDZkjyJIkSVKBAVmSJEkqMCBLkiRJBQZkSZIkqcCALEmSJBUYkCVJkqQCA7IkSZJUYECWJEmSCgzIkiRJUoEBWZIkSSowIEuSJEkFBmRJkiSpwIAsSZIkFRiQJUmSpAIDsiRJklRgQJYkSZIKygrIEXFLRMyIiEs+ThtJkiSpvWs2IEfECKBTSmkfYJuI2Gld2kiSJEkdQaSUmm4Q8e/AlJTSgxFxPLB5SmnSOrQ5Czgrf9kfeKGFzuFTwN9bqC9Jrc9/s1LH4b9Xre+2Syn1bLixcxk7dgMW5M/fAf55XdqklCYCE8sqdS1ExKyUUnVL9yupdfhvVuo4/PeqDVU5c5CXApvmz7s3sk85bSRJkqR2r5wgOxvYN38+BJi3jm0kSZKkdq+cKRb3AtMiYhvgCODEiBiXUrqkiTZ7t3ShTWjxaRuSWpX/ZqWOw3+v2iA1e5EeQER8EjgEeCyl9Oq6tpEkSZLau7ICsiRJkrSh8GI6SZIkqaDDBuSIGBQRD0TE4oh4LSIui4gOez7ShiAizo0If20ltXMR8aWIeDYilkXEhxHxaEQMqXRdUlsp5yK9dicidgYeIwv43wM2AS4kO5+LK1iapEZExBeBGypdh6SmRcT5wPeBR4EfAlsD5wN1EfGZlNIrlatOahsdMiAD1wJbAHumlJ4CiIgFwISI+HFK6aWKVidplfw3O98l+yH2VWCbylYkqTER0RO4Erg5pXRWYfuLwCTgNOCaCpUntZkONyUhIrYADgfurw/HuVuB94HPV6QwSY0ZTHab+c8DD1e4FklN2xy4Avhmg+2z8set27YcqTI6XEAGBpKNfD9S3JhSWgbMAXavRFGSGvU34DMppfsqXYikpqWU/pJSuiKltLjBW/X3N3i6bSuSKqMjTrHYKn/8S4n3XgP6tV0pkpqTUnqz0jVIWncR0QX4v2TfY++tbDVS2+iIAbl+1HtpiffeA7Zsw1okSVrffYfst7ejUkpLKl2M1BY64hSL9/LHKPHeRkDXNqxFkqT1VkQcDlwE3J1SmlzhcqQ20xED8oL8cfsS7/UC3m7DWiRJWi9FxADgLuCPwJcqXI7UpjpiQP4zWQg+oLgxIjoB1cDCShQlSdL6IiI+DTwIfAAclVJ6t8IlSW2qwwXklNIKsosEjouIvoW3TiKbfzy1EnVJkrQ+yMPxI0BPsnD8twqXJLW5SKnj3fU1v5Pe74G/kt05rzfZwuVLgCqvmpfap4iYDJyeUip1DYGkdiAiHgf2AX7CmmuXv5ZScj1zrfc6ZEAGiIj9gdv4aFm3PwOnpJT+p2JFSWqSAVlq3yKiN9DUraQfTSnVtFE5UsV02IAMq9Zm3IdsqsiMlNKHFS5JkiRJHVyHDsiSJElSS+twF+lJkiRJrcmALEmSJBUYkCVJkqQCA7IkSZJUYECWJEmSCgzIkiRJUsH/Bx59I/QwqXoWAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "x = np.arange(len(result.index))  \n",
    "width =0.1 # the width of the bars\n",
    "\n",
    "\n",
    "fig, ax = plt.subplots(1,1,figsize=(10,6))\n",
    "for i in range(len(result.columns)):\n",
    "    ax.bar(x+width*(i+1),result.iloc[:,i],width,label=result.columns[i])\n",
    "\n",
    "ax.set_title('详细分类展示图',size=25)\n",
    "ax.set_xticks(x)\n",
    "ax.set_xticklabels(result.index,size=20)\n",
    "ax.legend()\n",
    "\n",
    "fig.tight_layout()\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "91b16beb",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.4"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
